package com.ruoyi.mes.systembasic.mapper;

import java.util.List;
import com.ruoyi.common.core.domain.entity.SmesProductCategory;
import com.ruoyi.common.core.domain.entity.SysDept;
import org.apache.ibatis.annotations.Param;

/**
 * 产品类别Mapper接口
 * 
 * @author yanqin
 * @date 2020-11-26
 */
public interface SmesProductCategoryMapper 
{
    /**
     * 查询产品类别
     * 
     * @param productCategoryId 产品类别ID
     * @return 产品类别
     */
    public SmesProductCategory selectSmesProductCategoryById(Long productCategoryId);

    /**
     * 查询产品类别列表
     * 
     * @param smesProductCategory 产品类别
     * @return 产品类别集合
     */
    public List<SmesProductCategory> selectSmesProductCategoryList(SmesProductCategory smesProductCategory);

    /**
     * 新增产品类别
     * 
     * @param smesProductCategory 产品类别
     * @return 结果
     */
    public int insertSmesProductCategory(SmesProductCategory smesProductCategory);

    /**
     * 修改产品类别
     * 
     * @param smesProductCategory 产品类别
     * @return 结果
     */
    public int updateSmesProductCategory(SmesProductCategory smesProductCategory);

    /**
     * 删除产品类别
     * 
     * @param productCategoryId 产品类别ID
     * @return 结果
     */
    public int deleteSmesProductCategoryById(Long productCategoryId);

    /**
     * 批量删除产品类别
     * 
     * @param productCategoryIds 需要删除的数据ID
     * @return 结果
     */
    public int deleteSmesProductCategoryByIds(Long[] productCategoryIds);

    /**
     * 根据ID查询所有子类别
     *
     * @param id 类别ID
     * @return 类别列表
     */
    public List<SmesProductCategory> selectChildrenCategoryById(Long id);

    /**
     * 修改子元素关系
     *
     * @param categories 子元素
     * @return 结果
     */
    public int updateCategoryChildren(@Param("categories") List<SmesProductCategory> categories);
}
